Systems and methods for determining asset importance in security risk management

ABSTRACT

Disclosed are computer-implemented methods for ranking importance of assets of an entity, in which the assets can include hosts and/or IP addresses associated with the entity. The exemplary methods can include receiving datasets from one or more sources indicating frequency of system access, system configuration, and/or application configuration. The methods can include determining one or more input data based on the datasets. The methods can include determining, for each host and/or IP address associated with the entity, an importance ranking based on the input data. In some examples, the importance ranking may be based on a weighting of two or more input data.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to and the benefit of U.S. Provisional Patent Application No. 62/908,565 titled “Systems and Methods for Determining Asset Importance in Security Risk Management” and filed on Sep. 30, 2019, the entirety of which is incorporated herein by reference.

TECHNICAL FIELD

The following disclosure is directed to methods and systems for determining asset importance for an entity and, more specifically, methods and systems for determining importance of hosts and/or IP addresses of an entity.

BACKGROUND

An organization may desire to evaluate the importance of its assets, for example, for monetary or security purposes. Typically, many physical assets can be readily identified and evaluated based on their apparent characteristics (e.g., real estate, specialized equipment, list of customers, etc.). Further, in many instances, these physical assets can be evaluated based on a specified characteristic, e.g., market value or significance to the business of the entity, and in many cases by a layperson. However, identifying and/or evaluating computer network assets for modern entities can be more challenging as the value or significance of such assets are not easily ascertained without specialized knowledge or tools.

SUMMARY

Disclosed herein are methods and systems for determining asset importance for an entity. Specifically, the importance of network assets, e.g., hosts and/or IP addresses, of an entity can be evaluated and ranked. The importance of these assets can be presented to a user who is tasked with understanding or evaluating the importance of the entity's assets for, e.g., security or monetary purposes.

In one aspect, the disclosure features a computer-implemented method for ranking importance of assets of an entity, in which the assets include hosts associated with the entity. The method can include receiving at least one of: (a) a first dataset comprising (i) a respective plurality of hostnames of a plurality of hosts and (ii) lookup counts for each hostname of the plurality of hostnames, the lookup counts obtained from a stream of a domain name system (DNS) queries; (b) a second dataset comprising source code for a plurality of websites indicating, for each website, whether a host of the website is configured to collect data from users, the websites associated with the entity; or (c) a third dataset comprising a plurality of authentication certificates associated with at least one of the plurality of hosts. The method can include determining input data based on the received at least one first dataset, second dataset, or third dataset such that: (a) when the first dataset is received, determining a first input data comprising, for each host of the plurality of hosts, a ratio of (a) a number of lookup counts of the hostname of the host to (b) a maximum number of lookup counts of the plurality of hostnames for the entity; (b) when the second dataset is received, determining a second input data indicating, for each host of the website, whether the source code indicates that the host is configured to collect data from users of the website; and (c) when the third dataset is received, determining a third input data indicating, for the at least one host, whether the host has an authentication certificate. The method can include determining, for each host associated with the entity, a host importance ranking based on the determined input data.

Various embodiments of the exemplary method can include one or more of the following features.

The method can include receiving at least two of the first dataset, second dataset, or third dataset; and determining, for each host associated with the entity, the host importance ranking based on a weighting of the at least two of the first input data, the second input data, or the third input data. The method can include receiving the first dataset, in which determining, for each host associated with the entity, the host importance ranking further can include if the lookup count is zero, determining that the host importance ranking is lower than a host associated with (i) one or more lookup counts, (ii) source code indicating that the host is configured to collect data from users of the website, or (iii) an authentication certificate. The method can include receiving the first dataset, second dataset, and third dataset; determining, for each host associated with the entity, the host importance ranking based on the weighting of the first input data, the second input data, and the third input data; and determining a maximum of: (i) the first input data; and (ii) a sum of: (a) the first input data multiplied by a first weight; (b) the second input data multiplied by a second weight; and (c) the third input data multiplied by a third weight.

The method can include, if the lookup count is at least one, setting the first weight to equal to the second weight and the third weight to equal to less than the first weight, such that the sum of the first weight, the second weight, and the third weight is equal to one; and if the lookup count is zero, setting a sum of the second weight and the third weight to equal less than the first weight. The method can include assigning a unique identifier to each host associated with the entity. The first dataset can include lookup counts for each hostname over seven consecutive days. The source code can include HTML data for the plurality of websites.

When the second dataset is received, determining the second input data can include determining whether the source code indicates that the website includes a form for collecting data from the users of the website. When the second dataset is received, determining the second input data can include excluding those websites in which the form collects only search queries. The method can include presenting the host importance ranking in a user interface. When the second dataset is received, determining the second input data can include collecting a URL of the website, in which presenting the host importance ranking in a user interface can include presenting the URL of the website with the corresponding host.

The assets can include Internet Protocol (IP) addresses associated with the entity. The method can include receiving at least one of: (a) a fourth dataset comprising (i) a plurality of IP addresses and (ii) lookup counts for each IP address of the plurality of IP addresses; (b) a fifth dataset comprising at least one service or application type associated with at least one IP address associated with the entity; (c) a sixth dataset comprising fingerprints and/or cookies associated with another plurality of IP addresses associated with the entity. The method can include determining additional input data based on the received at least one fourth dataset, fifth dataset, or sixth dataset such that: (a) when the fourth dataset is received, determining a fourth input data comprising a ratio of (i) a number of lookup counts of the IP addresses to (ii) a maximum number of lookup counts of the IP addresses for the entity; (b) when the fifth dataset is received, determining a fifth input data comprising a ranking of the at least one service or application type, the ranking determined by comparing each service or application type to a database of pre-ranked service or application types; (c) when the sixth dataset is received, determining a sixth input data comprising a ratio of (a) a number of unique fingerprints and/or unique cookies of an IP address of the other plurality of IP addresses to (b) a maximum of numbers of unique fingerprints and/or unique cookies for the other plurality of IP addresses of the entity; and determining, for each IP address associated with the entity, an IP address importance ranking based on the determined additional input data.

The method can include determining, for each IP address of the entity, the IP address importance ranking based on a weighting of the at least two of the fourth input data, the fifth input data, the sixth input data, or the host importance ranking. The fifth dataset can include at least two service or application types for a particular IP address of the at least one IP address, and, when the fifth dataset is received, determining the fifth input data can include determining the ranking of the at least two or application service types; and retaining a ranking of a highest ranked service or application type of the at least two service or application types. The fifth dataset can include at least thirty days of data related to the at least one service or application type. When the fifth dataset is received, determining the fifth input data can include ranking the at least one service or application type based on a function and/or a criticality of a corresponding service or application having the at least one service or application type. The sixth dataset can include infection status of systems associated with the other plurality of IP addresses. The infection status of systems can include a measure of malware families identified to be associated with the other plurality of IP addresses.

The sixth input data can include a ratio of (i) a number of unique malware families associated with a particular IP address of the other plurality of IP addresses to (ii) a maximum of numbers of unique malware families associated with the other plurality of IP addresses. The sixth dataset can include at least sixty days of data related to fingerprints and/or cookies associated with the other plurality of IP addresses. The method can include receiving the fourth dataset, the fifth dataset, and the sixth dataset, in which determining, for each IP address of the entity, the IP address importance ranking is based on a maximum value from the group consisting of: the fourth input data, the fifth input data, the sixth input data, and the host importance ranking. The method can include, for at least one IP address, setting the IP address importance ranking to equal to or greater than the host importance ranking of a host associated with the at least one IP address.

In another aspect, the disclosure features a method for ranking importance of assets of an entity, in which the assets can include Internet Protocol (IP) addresses associated with the entity. The method can include receiving at least one of: (a) a fourth dataset comprising (i) a plurality of IP addresses and (ii) lookup counts for each IP address of the plurality of IP addresses; (b) a fifth dataset comprising at least one service or application type associated with at least one IP address associated with the entity; (c) a sixth dataset comprising fingerprints and/or cookies associated with another plurality of IP addresses associated with the entity. The method can include determining additional input data based on the received at least one fourth dataset, fifth dataset, or sixth dataset such that: (a) when the fourth dataset is received, determining a fourth input data comprising a ratio of (i) a number of lookup counts of the IP addresses to (ii) a maximum number of lookup counts of the IP addresses for the entity; (b) when the fifth dataset is received, determining a fifth input data comprising a ranking of the at least one service or application type, the ranking determined by comparing each service or application type to a database of pre-ranked service or application types; (c) when the sixth dataset is received, determining a sixth input data comprising a ratio of (a) a number of unique fingerprints and/or unique cookies of an IP address of the other plurality of IP addresses to (b) a maximum of numbers of unique fingerprints and/or unique cookies for the other plurality of IP addresses of the entity; and determining, for each IP address associated with the entity, an IP address importance ranking based on the determined additional input data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a flowchart of an exemplary method for determining host importance to an entity.

FIG. 1B is a diagram illustrating the data processing workflow according to the exemplary method of FIG. 1A.

FIG. 2A is a flowchart of an exemplary method for determining IP address importance to an entity.

FIG. 2B is a diagram illustrating the data processing workflow according to the exemplary method of FIG. 2A.

FIG. 3 is a diagram of an exemplary data processing workflow according to an exemplary method for determining host and IP address importance.

FIG. 4 is a block diagram of an example computer system that may be used in implementing the systems and methods described herein.

DETAILED DESCRIPTION

Disclosed herein are exemplary embodiments of systems and methods for determining importance of assets of an entity. The importance of the entity assets may be the importance to the entity that has or controls the assets or the importance to a third-party entity (e.g., in a business relationship with the entity, having an economic dependence with the entity, a security monitoring agent of the entity, a governmental body regulating the entity, etc.). An entity can be any organization, e.g., a company, an educational institution, a government, a group, etc. In various embodiments, the exemplary systems and methods described herein enable ranking the importance of computer network assets (e.g., hosts, IP addresses, etc.) to an entity. The importance of such assets may be resolved on an objective standard. For example, the importance of network assets can be determined in a similar fashion across entities, across industries, etc., thereby providing the entity or a third-party an unbiased evaluation. Importance of network assets (e.g., hosts, IP addresses, etc.) may be based on one or more factors including:

-   -   (i) The network traffic (e.g., to and/or from) associated with         the asset. For example, the observed traffic to or from a host         or IP address signifies the degree of use of the asset by an         entity or by the entity's customers. This further can indicate         the reliance of the entity and the entity's business on the         particular network asset. Additionally, such hosts or IP         addresses with significant traffic may become targets for         malevolent actors and therefore warrant extra attention and/or         security.     -   (ii) Whether the asset collects data inputted by users (e.g.,         customers, patients, etc.) of the entity. For example, a host of         a website collecting users' personal data, sensitive data,         operation-critical data, etc. may have greater value to an         entity over hosts of websites that simply display web content.     -   (iii) Whether the asset requires authentication (e.g., via         certificates, passwords, multi-factor). For example, a host         considered to be a vital asset by an entity may require users to         authenticate themselves to access privileged information, or an         entity may provision an authentication certificate (e.g., an         Extended Validation (EV) certificate) for securing web         communication, signing electronic documents, etc.     -   (iv) Whether the asset provides a valuable service for or by the         entity. For example, IP addresses associated with databases,         authentication protocols, communication services, network remote         access, industrial control systems, system remote access,         network infrastructure, and/or file exchange may be critical for         the operation of the entity's business and therefore deemed to         have greater importance than, e.g., an IP address associated         with a device hosting web content alone.     -   (v) The fingerprints and/or cookies associated with egress IP         addresses associated with the entity. For example, the         monitoring of the fingerprint and/or cookie-related data can aid         in determining the number of unique devices associated with an         IP address. A greater number of unique devices may signify         greater utilization rate of a particular IP address, thereby         uncovering the importance of that IP address to the entity.     -   (vi) The security status of an IP address of the entity. For         example, determining whether an asset is compromised (e.g.,         infected, attacked, etc.) can reveal that the particular asset         is a target for malevolent actors and therefore warrant extra         attention and/or security.     -   (vii) The configuration of the applications operating on a         system of the entity. For example, an entity may invest         significant effort configuring a website to appear higher in         search engine results to drive more users and additional         activity to that system (e.g., search engine optimization         practices, etc.). Therefore, the importance of such a system may         be ranked higher than those without extensive or any particular         configuration.     -   (viii) The interconnectedness and referential nature of assets         across specific applications. For example, an entity may         frequently cite a particular asset, such as an email address or         link to another website, across a number of its applications and         assets, and the popularity of the frequency of mentions can         signify the importance of a given asset.

Having accurate and digestible data about the importance of network assets may enable an entity or a third-party to make decisions about the network assets themselves and/or the operations of the entity, including security decisions.

Network Asset Importance

In some embodiments, the importance of network assets (e.g., hosts, IP addresses, etc.) of an entity can be determined based on one or more datasets. An exemplary method for determining the importance of network assets can include receiving one or more of the following data:

Frequency of system access. The frequency with which an entity system is accessed. For example, this frequency can be determined based on passive DNS data; frequency of flows, large duration flows, and/or high-throughput flows as represented in Netflow data; the frequency with which a particular entity asset is linked, called from, or referred to on websites (e.g., external to the entity and/or websites managed or controlled by the entity); the number of users and/or devices using an entity IP address as an egress IP address; the number of infected entity systems on a particular IP address; the number of real-time blacklist (RBL) record lookups for domains or IP addresses; the number of (i) sender policy framework (SPF) record lookups or (ii) domain-based message authentication, reporting, and conformance (DMARC) record lookups for domains (and/or the IP addresses indicated in those records); and/or the frequency of TLS/SSL certificates for given domains or subdomains within subject names or subject alternative names.

System configuration. One or more aspects of the configuration of an entity system. For example, the aspects can include the use of authentication certificates (e.g., EV certificates, etc.); the type of services or applications enabled on the entity system (e.g., an instant messaging protocol, an email system, a SSL VPN system, a router, a firewall, an SSO authentication solution, secure file sharing services, etc.); whether a system administrator defined search engine optimization (SEO) related configuration(s); whether the system has a programmatic interface and the type of programmatic interface; whether the system has dependencies for other business functions or applications (e.g., if a system is required to be available for a mobile application to function correctly, etc.); one or more characteristics of the physical hardware associated with the system (e.g., if the IP address is associated with the entity's wireless infrastructure, etc.); and/or administratively assigned identifiers on assets for external service verification and/or ownership purposes.

Application configuration. One or more aspects of an application's configuration (e.g., functionality, inputs, outputs, etc.). For example, the configuration can be determined based on whether the application accepts user-submitted data and/or the types of data served to users of the application (e.g., text only, multimedia content, personally identifiable data, etc.); the presence of entity brand assets (e.g., logos for the entity, its subsidiaries, or its derivative products); whether the application is used solely within an organization or whether the application is used by non-entity employees or external customers, and/or the support for specific high-level application functions (e.g., shopping cart functionality, etc.).

Examples of the above-referenced data can be found throughout the instant disclosure. The exemplary method may include determining input data into a weighting algorithm for ranking the one or more network assets. The exemplary method may include determining the asset importance ranking based on one or more of the input data. One or more of the datasets described above can be received, obtained, and/or collected via a one or more receiving, retrieval, or collection methods to be used in the systems and methods discussed herein.

Frequency of System Access

In some embodiments, the exemplary systems and methods receive frequency of lookups from passive DNS data. Accordingly, passive DNS data may be collected from one or more sources, including resolvers associated with Internet Service Provider (ISP) networks, resolvers associated with entity networks, open resolvers available on the Internet for open use, etc. In some embodiments, the system may preserve duplicates of queries (e.g., may not deduplicate queries) received by the resolver. In other embodiments, if the system does deduplicate queries, the system may record a count of the number of distinct queries received by the resolver over the deduplication period. In a preferred embodiment, the passive DNS data can be uniformly distributed to the extent possible so as to reduce biases introduced by the local users of the systems querying the resolvers (e.g., through cultural or geographic biases). Two or more passive DNS datasets may be combined together if they are collected and/or processed in the same or similar ways.

In some embodiments, the exemplary systems and methods receive frequency of flows, large duration flows, and/or high-throughput flows as represented in Netflow data. Accordingly, Netflow data may be received, obtained, or collected from one or more sources. For instance, a sensor or router may be configured to collect Netflow data within one or more ISPs, within one or more Internet Exchange Points, within one or more entity networks, and/or within any other router that observes Internet traffic between a source and a destination. In a preferred embodiment, the Netflow collection can be distributed among different sensors or routers so as to reduce biases introduced by the local users of the systems making connections through those sensors or routers (e.g., representing cultural or geographic biases into the resulting data). Two or more Netflow datasets may be combined together if they are collected and/or processed in the same or similar ways.

In some embodiments, the exemplary systems and methods receive the frequency with which a particular entity asset is linked, called from, or referred to on websites. Such frequency information may be collected by using known web crawling techniques in which a programmatic application visits a website, collects information about its content, and identifies the links that appear on the website. The application may subsequently visit those links and repeat that process. Such crawling is commonly seen within search engines or other applications that are configured to collect contextual information about websites. In some embodiments, this data is reduced down to a set of origin and destination links, enriched by the entity that represents the source and the destination websites. In some cases, the frequency of distinct inbound links (also discussed as “references”) to a given destination asset (e.g., its domains and/or IP addresses) represent information useful for determining asset importance. In some embodiments, such information can be related to links with an origin and a destination associated with the same entity. Information associated with the entity may be weighted more in determining asset importance as compared to links from external origins.

In some embodiments, the exemplary systems and methods receive the number of users and/or devices using an entity IP address as an egress IP address. The number of users and/or devices may be determined from data indicating the IP addresses of users. User IP addresses can be determined in instances when users interact with web services or other external assets outside of the user's network. User interaction may be determined from network traffic associated with an application on a desktop workstation or mobile device. The IP addresses and contextual information may be obtained through the logs and other information collected by those web services or other external assets. Determining which IP addresses are egress addresses can be beneficial. However, more information may be determined by using application-unique identifiers to estimate the volume of the number of distinct users or devices behind a given set of IP addresses. This estimate can be used to rank the importance of egress IP addresses. In some embodiments, such information can be related to IP addresses that are in use by individuals and not programmatic systems or infrastructure. In some cases, this information may be weighted more in determining asset importance as compared to IP addresses in use by programmatic systems or infrastructure.

In some embodiments, the exemplary systems and methods receive the number of infected entity systems on a particular IP address. The number of infected entity systems can be collected by analyzing and identifying the IP addresses associated with devices that have a malware infection behind those networks. This information can be determined through various techniques (e.g., sinkholing and other known botnet tracking techniques). In some embodiments, an IP address that is associated with a device infected with malware but that does not show up as an egress IP address through the above-described method may not be assigned a higher rank than an egress IP address. This situation may occur due to the communication methods that malware utilize.

In some embodiments, the systems and methods receive the number of real-time blacklist (RBL) record lookups. The number of RBL record lookups can be collected by assessing the logs of the operators of RBL systems and determining the frequency of queried assets. These IP addresses may represent the type of activity described above with regard to egress IP addresses. These IP addresses may more commonly be associated with infrastructure (e.g., SMTP servers) due to the nature of how RBL systems are used. Alternatively, this information can be estimated from queries observed in passive DNS data to known RBL services. The queried asset may imply different information depending on the context of the RBL services. For example, an IP address or domain queried to an RBL system that tracks known spam actors may indicate that the asset was used to send email. Likewise, a domain that is queried to an RBL system that tracks malicious websites may indicate that an individual or programmatic system attempted to access that website.

In some embodiments, the systems and methods receive the number of sender policy framework (SPF) or domain-based message authentication, reporting & conformance (DMARC) record lookups. Such record lookups can be determined by assessing the logs of common operators of DNS services for domain names (authoritative name servers), or through passive DNS. The queries of domains via one or more of these email protection techniques can indicate that an email was received by a mail system whose origin represents that domain name, implying that this domain is being used by an associated organization (or a malicious actor) for email-related purposes. The frequency of these lookups may indicate how frequently the domain is used for email and/or as an input into the asset importance determination. For the SPF technology, additional information may be included in those DNS records that represent the IP addresses permitted to send email for the particular queried domain. This information may be provided as an input into the exemplary system.

In some embodiments, the systems and methods receive the frequency of TLS/SSL certificates for given domains or subdomains within subject names or subject alternative names. This frequency information can be determined via similar mechanisms described above for the frequency of linked assets on web services by crawling the Internet. However, instead of saving the context of the links between origin and destination, the TLS/SSL certificates that the web crawling system encounters may be saved with its origin information. TLS/SSL certificates may be collected by scanning IPv4 or IPv6 addresses using a protocol that implements the TLS protocol. Once certificates have been collected, domains can be extracted from the subject name or subject alternative name fields to determine the frequency for which domains appear within the unique set of valid certificates.

System Configuration

In some embodiments, the exemplary systems and methods receive authentication certificates (e.g., EV certificates, etc.). Authentication certificates may be collected via (i) the same or similar methods described above for the frequency of TLS/SSL certificates for given domains or subdomains, (ii) crawling the Internet, and/or (iii) scanning TLS/SSL-enabled application protocols. The resulting certificates can be processed to determine whether they have the OID representing an EV certificate as included by the certificate authority.

In some embodiments, the exemplary systems and methods receive the type of services or applications enabled on the entity system. The types of services or applications can be determined by scanning the IP address space (e.g., IPv4 and/or IPv6 address space) and communicating with systems associated with the respective IP addresses over one or more application-layer protocols to understand whether entity systems have those services available. Additionally or alternatively, the system can be configured to process the results to determine the applications operating a particular service or services (e.g., that the web service is an SSO solution, the administrative panel for their CMS, the bug tracking system, a business-to-business application, etc.). The application(s) can be determined by assessing the response of the protocol transactions and mapping or fingerprinting characteristics of that response to known applications matching those characteristics.

In some embodiments, the exemplary systems and methods receive data related to whether a system administrator defined search engine optimization (SEO) related configuration(s). This information can be determined by crawling the Internet and can be found within the context of a website. SEO optimization can take one of many forms, including HTML meta tags indicating keywords, descriptions, or other metadata about the website. These same fields can include links back to organizational contact information or other data (e.g., icons) to use when rendering the web application. Determining the websites that have been configured to use administratively-defined SEO information can be used inform the website's importance.

In some embodiments, the exemplary systems and methods receive data related to whether the system has a programmatic interface and the type of programmatic interface. This information can be collected by crawling the Internet or by scanning the Internet across the IP address space (e.g., IPv4 and/or IPv6 address space). Application programming interfaces (APIs) are typically used by other web applications or the entity operations between other business partners or between the entity and its customers or users. These APIs can be identified through their responses to the system interrogating their respective services. For example, an IP address hosting an HTTPS service on port 443 which replies back with a content type of “application/json” is likely an API considering a direct user. Human-based interaction with the API would result in the application returning a different content type. This content type, and other artifacts, may vary based on the URL or requested resource on the web application. Accordingly, the observations related to the API can be tracked and provided to the system for determining asset importance.

In some embodiments, the exemplary systems and methods receive data related to whether the system has dependencies for other business functions or applications. This information can be collected through one or more of the following methods . In identifying dependencies for web applications, this information can be gathered by crawling the Internet using a headless browser or other application that can process JavaScript and/or dynamic web applications. In identifying dependencies for mobile applications, dynamic and static analysis systems can be used to analyze an entity's mobile applications across one or more platforms. The dependencies that are identified are analogous to those of links identified between various web applications. However, for identified dependencies, a web application depends on identifying systems for loading code or other resources for the web application to function correctly.

In some embodiments, the exemplary systems and methods receive one or more characteristics of the physical hardware associated with the system. These characteristics can be collected via applications that gather network information of devices that are connected to that local network. In identifying wireless infrastructure, an application on workstations or mobile devices may be used to extract such characteristics if these workstations or mobile devices are connected to those networks.

In some embodiments, the exemplary systems and methods receive administratively assigned identifiers on one or more assets for external service and/or ownership verification purposes. One or more assigned identifiers can be collected by one or more methods based on the verification actions being performed. For example, for some cloud-based solutions, the entity may require the administrator to prove ownership of a domain by adding a DNS record for that domain with specific values. The active or passive collection of these DNS records can provide insight into the services that are dependent on those domains and accordingly be used as an input for determining a domain's importance.

Application Configuration

In some embodiments, the exemplary system and methods can receive data related to whether the application accepts user-submitted data, whether the users are members of a particular entity or the general public, and/or the types of data served to users of the application. This information can be collected by crawling the Internet. In a preferred embodiment, this information is collected using a headless browser or other applications that can interpret and/or process dynamic web applications. The home webpage of the host may be processed. In some cases, multiple web pages on the same web application beyond the home webpage of the host may be processed. From the resulting data, indicators that the web application supports user-submitted information can be determined. This can include discovering common fields and field names on a web page that is indicative of user input (e.g., those identified relating to email addresses, logins, passwords, physical addresses, comments, etc.). In some embodiments, the web application actions that are available to the user can be used. For example, web applications can have forms that the user's browser is instructed to submit information via HTTP POST to the web application. In such cases, the user submits some user or application-defined content back to the web site.

In some embodiments, the exemplary systems and methods receive data related to the presence of entity brand assets (e.g., logos) for the entity, its subsidiaries, or its derivative products. This information can be gathered by crawling the Internet. In a preferred embodiment, this information can be collected using a headless browser or other applications that can interpret and/or process dynamic web applications. The home webpage of the host may be processed. In some cases, multiple web pages on the same web application beyond the home webpage of the host may be processed. In this case, images can be extracted from these crawls across the pages of the web application. One or more logos and/or trademarks can be collected for the given entity. These can be used as a reference to the given set of images observed in a particular website. The instance of an image closely matching an entity's logo or trademark can be indicative of the web application being important to the entity. Accordingly, the data related to entity brand assets can used as an input to determine asset importance.

In some embodiments, the exemplary systems and methods can receive data related to the support for specific high-level application functions. This information may be gathered by crawling the Internet. In a preferred embodiment, this information is collected using a headless browser or other applications that can interpret and/or process dynamic web applications. The home webpage of the host may be processed. In some cases, multiple web pages on the same web application beyond the home webpage of the host may be processed. In this case, application scripts and functions can be extracted and identified pertaining to specific activities that the application supports. For example, the application may support shopping cart functionality, which may in part be identified by common actions that are available (e.g., “add to cart”, “purchase”, etc.) or through specific identification of the application library that enables the function.

Host Importance

FIG. 1A is a flowchart of an exemplary method 100 a for determining importance of one or more hosts associated with an entity. FIG. 1B is a diagram illustrating the data processing workflow 100 b according to the exemplary method of FIG. 1A. As used herein, a “host” of an entity can include a computer or other device (e.g., a server, a client, etc.) that can be connected to a computer network and communicate with other hosts. A host may be referred to as a “node” and have an assigned “hostname” that can be used to identify the host in, e.g., electronic communication. A host may be assigned to and/or associated with one or more IP addresses.

Exemplary method 100 a may include one or more submethods 101 a, 101 b, 101 c. For example, the method 100 a may include submethods 101 a and 101 c or, in another example, method 101 a may include submethod 101 b. Exemplary step 102 of submethod 101 a can include receiving a first dataset 116 including one or more hostnames of the hosts associated with the entity and lookup counts for each hostname. The lookup counts may be derived from a domain name system (DNS) cache and may represent traffic for a particular host. For example, the first dataset 116 may be collected manually, or the dataset 116 may be received from a third-party service (e.g., passive DNS dataset from one or more service providers).

Exemplary step 104 can include determining, based on the first dataset 116, a first input data 118 including, for each host, a ratio of the lookup counts of the hostname to the maximum number of lookup counts of hostnames for the same entity. Exemplary step 104 may include extracting hostnames (e.g., cache-miss hostnames, absolute hostname queries, etc.) and respective lookup counts of each hostname from dataset 116. In some embodiments, the collected count records may be deduplicated.

In some embodiments, at least four days of data from passive DNS is processed in determining the first input data 118. In some embodiments, seven consecutive days of data from passive DNS is processed so that the behavior of users (of the entity's hosts) can be represented to include weekend days. In some embodiments, DNS records having resource records types (“rrtypes”) equal to “A” or “AAAA” are used in the determination of rankings. For example, a lookup rrtype of “A” is expected to return IPv4 addresses and a lookup rrtype of “AAAA” is expected to return IPv6 addresses. In some embodiments, DNS records having resource record types equal to “NS” are used to reduce the natural overpopulation of hostnames associated to authoritative name servers. For example, the hostnames associated to the answers within “NS” records could be ignored by these methods to produce a more accurate asset ranking.

In some embodiments, host importance ranking 130 may be based on the first input data 118 in step 114.

In submethod 101 b, step 106 can include receiving a second dataset 120 including source code for websites associated with the entity. The source code can indicate whether the host of the website is configured to collect data from users of the website. For instance, a website may collect personal data, credentials, responses to security questions, financial information, health-related data, product reviews, business queries, etc. from users (e.g., customers, patients, etc.) of the entity. In another example, the entity may collect data from its own employees or vendors critical to its operation (e.g., in research and development data, manufacturing data, human resources data, legal information, financial data, etc.). For example, the second dataset 120 may be collected manually, or the dataset 120 may be received from a third-party service (e.g., Web crawling data such as Common Crawl of San Francisco, California, Censys of Ann Arbor, Michigan, or Shodan, or other Internet scanning datasets for devices connected to the Internet). Specifically, data received from Common Crawl may include one or more of the following datasets: (a) Web ARChive (WARC) formatted web crawl data (including, e.g., HTML); (b) WAT data (which include metadata of data stored in the WARC format) stored as serialized JavaScript Object Notation (JSON) objects of Document Object Model (DOM) properties and other metadata; and/or (c) WET data (e.g., plaintext metadata of the data stored in the WARC format). The data received from Internet scanning datasets may include events on devices associated with the entity (e.g., entity-owned devices, devices operated on behalf of the entity, independent devices connected to a network of the entity) connected to the Internet (e.g., via Wi-Fi, Ethernet, etc.).

Exemplary step 108 can include determining, based on the second dataset 120, a second input data 122 indicating, for each host of the web site, whether the source code indicates that the host is configured to collect data from users of the website. Exemplary step 108 can include determining, via the source code of dataset 120, whether the host across any of its web pages supports a POST function by evaluating the source code (e.g., the HTML content, JavaScript, etc.) in host-based events (e.g., from Internet scanning and/or Web crawling). A POST function, for example, enables the collection of user data inputs in a website by the host of the website. In some embodiments, the dataset 120 can be evaluated to detect the function in the websites with a case-insensitive regex tester. In some embodiments, the HTML code of the websites can be parsed to uncover any form node. In some embodiments, forms configured to collect search queries can be excluded (e.g., filtered out) of the dataset 120, as these forms do not typically collect users' personal information (e.g., username, password, responses to questions, etc.).

Exemplary step 108 can include outputting a value (e.g., Boolean, binary, etc.) with each hostname indicating whether that host supports such a function. Exemplary step 108 may include extracting URLs of websites identified as supporting user input of data. In some embodiments, the URLs can be presented with host importance ranking.

In some embodiments, host importance ranking 130 may be based on the second input data 122 in step 114.

In submethod 101 c, step 110 can include receiving a third dataset 124 including one or more authentication certificates (e.g., Extended Validation (EV) certificates) associated with one or more of the hosts. For example, EV certificates can enable verification of the legal identity of the entity that owns the EV certificate and in some cases can be used to secure web applications and sign electronic documents.

Exemplary step 112 can include determining, based on the third dataset 124, a third input data 126 that indicates whether a host has an authentication certificate. Exemplary step 112 may include evaluating X.509 certificates associated with host-based events to determine whether the host has an EV certificate. Exemplary step 112 may include determining whether the certificate includes an object identifier (OID) that matches an OID in a list of publicly known OIDs that correspond to an indication that the certificate is an EV certificate. Exemplary step 112 may include determining the hostname associated with the event and mapping the hostname to the appropriate entity. Exemplary step 112 may include outputting a value (e.g., Boolean, binary, etc.) indicating whether the host has an EV certificate. In some embodiments, host-related events and/or IP address-related events can be evaluated to determine whether the events are associated with an EV certificate.

In some embodiments, host importance ranking 130 may be based on the third input data 126 in step 114.

In some embodiments, the host(s) of an entity may be identified and ranked based on one or more of the datasets 118, 122, 126. In other words, information about a host may be available from only one of the datasets or some combination of the datasets. For example, dataset 118 may include information with respect to Host A and Host B; dataset 122 may include information with respect to Host B; and dataset 126 may include information with respect to Host A and Host C. The host importance ranking calculated at step 114 can include a ranking of each of Host A, Host B, and Host C, even though not every dataset may have corresponding information for each of the hosts A, B, and C.

In some embodiments, the first dataset 116, second dataset 120, and third dataset 124 can be received in any order. Similarly, the processed input data 118, 122, 126 can be provided to the algorithm 128 in any order.

In some embodiments, the datasets 116, 120, and/or 124 may include hostnames for multiple entities. In this case, the exemplary method 100 a can include filtering the datasets 116, 120, and/or 124 so as to extract hostnames for a particular entity. In some embodiments, the exemplary method 100 a can include associating the hostname with an identifier (e.g., a global unique identifier (GUID) of the entity). In some embodiments, the method 100 a can include mapping the hostname(s) to the corresponding entity.

Exemplary step 114 can include determining, for each host associated with the entity, a host importance ranking 130 based on a combination and/or weighting of the first input data 118, the second input data 122, and/or the third input data 126. In some embodiments, step 114 can include determining the host importance ranking 130 and can be based on additional and/or alternative input data, as described herein (see, e.g., under headings “IP Address Importance” and “Further Exemplary Embodiments”). In some embodiments, if the lookup count for a corresponding hostname is zero (e.g., no DNS traffic), the corresponding hostname can be ranked lower than if it had one or more lookup counts. In some embodiments, if the host has no lookup counts but supports a POST function or has an EV certificate, the host may be ranked slightly higher.

In some embodiments, if the lookup count is at least one, the host importance ranking 130 can be such that the first weight is set to equal to the second weight and the third weight set to equal to less than the first weight, such that the sum of the first weight, the second weight, and the third weight is equal to one (1). If the lookup count is zero, a sum of the second weight and the third weight can be set to equal or less than the first weight.

In some embodiments, if the lookup count for a corresponding host is greater than zero, the host importance ranking 130 can be based on the following weights:

Weight associated with hosts having non-zero lookup counts=hd lookup=0.45

Weight associated with hosts supporting POST function=W_(post)=0.45

Weight associated with hosts having EV certificates=W_(ev)=0.10

In some embodiments, if the lookup count for a corresponding host is zero, the combined total of the weights for the POST function and EV certificates are set to 0.15. Therefore, the host importance ranking 130 can be based on the following weights:

Weight associated with hosts supporting POST function=W_(post)=0.10

Weight associated with hosts having EV certificates=W_(ev)=0.05

An exemplary weighing algorithm 128 may be:

Host importance ranking 130=maximum of {(data 118), (data 118*W lookup+data 122* W_(post)+data 126*W_(ev))}

In a particular embodiment, the exemplary weighting algorithm 128 may be:

Host importance ranking 130=maximum of {(lookup ratio), (lookup ratio*W_(lookup)+POST value*W_(post)+EV value*W_(ev))}

Note that the above exemplary algorithm 128 equals the lookup ratio (of the first input data 118) when it is greater than the combined weighted sum of the input data (e.g., input data 118, 122, and 124). In other words, hosts having greater DNS traffic (as represented in the number of lookup counts) are preferentially treated in the algorithm and can be ranked higher than hosts with less (or zero) DNS traffic.

In some embodiments, each host associated with an entity can be assigned a unique identifier. The identified hosts can be those that are received via the datasets 116, 120, and/or 124. A unique identifier for each host can enable the ranking of host importance to be more efficiently updated (e.g., as additional or alternative datasets are received). The unique identifier can enable the ranking of hosts to be used in other systems and methods. For example, the host identifiers can be used in methods and systems determining the security of the hosts of a particular entity. In some embodiments, the unique identifier for the hosts can be determined as the host importance is being ranked (e.g., at step 112). An exemplary unique identifier has a length such that the identifiers avoid collisions due to a birthday attack. For example, the unique identifiers can be 256 bit (32 byte) identifiers (e.g., using SHA-256 hash function).

In some embodiments, the datasets 116, 120, and/or 124 may be drawn from one or more overlapping sources. For example, the second dataset 120 and third dataset 124 may originate from a single source, e.g., Internet scanning. In some embodiments, the datasets 116, 120, and/or may be drawn from multiple sources. For example, some or all of the second dataset 120 may be source from two or more sources, e.g., Internet scanning and Web crawling, as discussed above.

IP Address Importance

FIG. 2A is a flowchart of an exemplary method 200 a for determining IP address importance to an entity. FIG. 2B is a diagram illustrating the data processing workflow 200 b according to the exemplary method 200 a. Exemplary method 200 a may include one or more submethods 201 a, 201 b, 201 c. For example, the method 200 a may include submethods 201 b and 201 c or, in another example, method 201 a may include submethod 201 a.

Exemplary step 202 of submethod 201 a can include receiving fourth dataset 216 including IP addresses of the entity and lookup counts for each IP address. For example, the fourth dataset 216 can be collected manually or received from a third-party service (e.g., passive DNS dataset from a service provider(s)). In some embodiments, the first dataset 116 can be received with the fourth dataset 216 such that the combined dataset can provide insight into the lookup counts for hosts and corresponding IP addresses (or vice versa). In other words, the combined dataset can be sorted by host or IP address for a given entity. One benefit is that the processing of the combined dataset (including the first dataset 116 and the fourth dataset 216) can be more efficient than the separate processing of each dataset 116, 216 individually.

Exemplary step 204 can include determining, based on the fourth dataset 216, a fourth input data 218 including a ratio of a number of lookup counts of the IP addresses to a maximum number of lookup counts of the IP addresses for the entity. Exemplary step 204 may include extracting IP addresses and respective lookup counts from dataset 216. In some embodiments, the collected count records may be deduplicated.

In some embodiments, at least four days of data from passive DNS is processed in determining the fourth input data 218. In some embodiments, seven consecutive days of data from passive DNS is processed so that the behavior of users (of the entity's hosts) can be represented to include weekend days.

In some embodiments, IP address importance ranking 230 may be based on the fourth input data 218 in step 214.

Exemplary step 206 of submethod 201 b can include receiving a fifth dataset 220 including one or more service types associated with one or more IP addresses associated with the entity. The step 206 may include extracting the IP address(es) and a type or description of the service module(s) and/or determining the application(s) operating on the service from the dataset 220. This data may be collected manually and/or received from a third-party service (e.g., Shodan, Censys, etc.). In some embodiments, at least thirty (30) days of data is collected for the service type(s) associated with the IP address.

The importance of an IP address can be influenced by the type of service or application running on the particular IP address. By collecting the service or application types and categorizing the service or application types, the importance of the IP address may be more finely tuned in the ranking of IP addresses. In some embodiments, the service or application is considered based at least in part on its function and/or criticality to the particular entity, while excluding the service or application's security configuration. A service or application may be ranked in this manner so that a prior decision by the entity to secure (or not to secure) the service or application does not influence the determination of importance based on an objective standard. For example, an IP address for a system hosting a database without use of authentication for access will be ranked as important as an IP address for a system hosting a database with the use of authentication. This can be important for assets that an entity did not originally deem as important but may be revealed to be critically or highly important via the ranking methods described herein.

Exemplary step 208 can include determining, based on the fifth dataset 220, a fifth input data 222 including a ranking of services and/or applications. In some embodiments, the ranking may be determined by comparing each service or application to a database of pre-ranked services. In some embodiments, service and application groups can be predetermined and listed in a database. These groups may be ranked based on general importance to entities. For example, databases are typically important to all entities due to the effort required to build and maintain them, the confidentiality of the data, etc. In some cases, the service and applications may be ranked based on its importance to types of entities (e.g., a gaming company as compared to a healthcare company) and/or to the specific entity. Below in Table 1 is a non-exclusive and non-limiting list of services and applications that are pre-grouped and pre-ranked.

TABLE 1 Exemplary list of services by group and ranking. Service or Application Service or Rankings Minimum Group Application Value Ranking Databases mysql 0.7 CRITICAL postgresql redis mongodb memcache memcache-udp zookeeper cassandra couchdb Authentication ldap-tcp 0.6 CRITICAL Protocols ldap-udp ldaps Kerberos Communication smtp 0.6 CRITICAL Services smtps pop3 pop3-ssl imap imap-ssl xmpp sip rtsp-tcp dahua-dvr amqp Network Remote ike 0.5 CRITICAL Access ike-nat-t pptp Industrial Control bacnet 0.4 CRITICAL Systems secure-fox System Remote ssh 0.3 HIGH Access telnet rdp vnc ipmi x11 cisco-smi smb telnets java-rmi Network bgp 0.1 HIGH Infrastructure rip snmp dns-tcp dns-udp dhcp File Exchange ftp 0.05 HIGH Web Content http 0.0 LOW https

In some embodiments, an IP address can be associated with two or more services or applications. In such a case, the ranking of the highest ranked service or application is retained for the IP address. For example, if the IP address is associated with both a database (critical ranking) and system remote access (high ranking), the highest ranking is “critical.” Therefore, the critical ranking of the services or applications is retained in the fifth input data 222. In some embodiments, if a service or application type is not found in the database of pre-ranked service or application types (see, e.g., Table 1), a default ranking may be provided (e.g., medium or low).

In some embodiments, IP address importance ranking 230 may be based on the fifth input data 218 in step 214.

Exemplary step 210 of submethod 201 c can include receiving a sixth dataset 224 including data related to egress IP addresses associated with the entity. Egress IP addresses are typically used by workstations, endpoint machines, mobile devices, user devices, etc. and can be particularly vulnerable to security risks (e.g., infections, spear phishing attacks, etc.). Data related to egress IP address may be collected manually and/or drawn from third-party sources (e.g., operators of individual websites, providers of web-based libraries, content delivery network (CDN) content providers, advertisement and marketing technology firms, etc.).

In some embodiments, sixth dataset 224 can include fingerprints and/or cookies associated with IP address(es) associated with the entity. In some embodiments, the fingerprint and/or cookie-based data enables an estimation of the number of unique devices associated with a particular IP address. In some embodiments, the estimation of the number of unique devices associated with a particular IP address may be derived from a model constructed from other characteristics (e.g., distinct URLs visited, distinct websites visited, etc.). For example, if an entity has multiple egress IP addresses, the dataset 224 is used in the method 200 a to appropriately rank IP addresses that have greater utilization over IP addresses with less utilization. In some embodiments, at least sixty (60) days (e.g., at least sixty continuous days) of fingerprint-related and/or cookie-related data is collected for the IP address(es) of the entity. In some embodiments, if there is less than sixty days of data for a given IP address, the associated data may be used differently (e.g., not included in determining ranking) or given less weight (e.g., in determining ranking).

In some embodiments, sixth dataset 224 can additionally or alternatively include an infection status of system(s) associated with the IP address(es). Measures of the infection status of systems can include the number of unique malware families identified on the entity's systems. In some embodiments, at least ninety (90) days (e.g., at least ninety continuous days) of infection status data is collected for the IP address(es) of the entity.

Exemplary step 212 can include determining, based on the sixth dataset 224, a sixth input data 226 related to the egress IP address(es) of the entity. The sixth input data 226 may include a ratio of a number of unique fingerprints and/or unique cookies of a particular IP address of the entity to the maximum of the numbers of unique fingerprints and/or unique cookies for total identified IP addresses of the entity. The sixth input data 226 may include a ratio of the number of unique malware families associated with a particular IP address to a maximum of the number of unique malware families associated with the total identified IP addresses of the entity. For example, the “total identified IP addresses” of a given entity may be the IP addresses received in a given batch of data of the sixth dataset 224.

In some embodiments, IP address importance ranking 230 may be based on the sixth input data 218 in step 214.

Exemplary step 214 can include determining, for each IP address of the entity, an IP address importance ranking 230 based on the fourth, fifth, sixth, and/or the host-to-IP address importance mapping 232. In some embodiments, the ranking 230 can be determined via a weighting algorithm 228. The algorithm 228 can be based on a maximum value based on: (i) the fourth input data 218, (ii) the fifth input data 222, (iii) the sixth input data 226, and/or (iv) the host-to-IP address importance mapping 232. For example, the algorithm 228 can be:

maximum {(maximum (data 218, rankings 130)*(1−(data 222)²)+(data 222)²), (data 218), (data 226), (rankings 130)}

The above exemplary weighting algorithm 228 can account for data from a variety of existing and future sources. In some embodiments, step 214 can include determining the IP address importance ranking 230 and can be based on additional and/or alternative input data, as described herein (see, e.g., under headings “Host Importance” and “Further Exemplary Embodiments”). By using the maximum function, some data are emphasized over others in ranking the IP addresses of the entity. For example, if traffic observed (e.g., in data 216) to the IP address is significant over other values, that the value of data 218 may be used. If the service ranking of a particular IP address (e.g., in data 220) augmented by the traffic data (e.g., in data 216) or related host importance (e.g., in rankings 130) is significant over other values, then service-based data 222 may be emphasized. If there is any traffic observed via cookie-based or fingerprint endpoint telemetry and is high enough (e.g., in data 224), then data 226 may be used. However, if no cookie-based or fingerprint-based telemetry was observed, then infections can be used to understand whether infections on that IP address occurred, and that value may be returned (e.g., in data 226). If the rankings value of any of the IP addresses' associated hosts is high enough, that data from rankings 130 may be used.

As discussed above, the host-to-IP address importance mapping 232 may be used as part of the weighting algorithm 228. For example, the method 200 a can include determining the ranking of a host associated with the IP address based on the host importance ranking 130. In some embodiments, for a given entity, the host importance ranking 130 is received for each host associated with the IP address. In some embodiments, multiple hosts may be associated with an IP address. In other embodiments, one host may be associated with multiple IP addresses. In some embodiments, the IP address importance ranking 230 for a particular IP address is compared to the host importance ranking 130. In some cases, the particular IP address is given the same or greater ranking of the associated host(s).

Host and IP Address Importance

FIG. 3 is a diagram of an exemplary data processing workflow 300 according to an exemplary method for ranking host and IP address importance. Workflow 300 can include exemplary workflows 100 b and 200 b. As indicated, element numbers used in FIG. 3 are intended to provide examples of elements used in workflows 100 b and 200 b and are not intended to be limiting. For example, workflow 100 b can be connected to workflow 200 b such that the output of the weighting algorithm 128 are directly or indirectly provided to weighting algorithm 228, as described above.

Ranking Presentation

In various embodiments, the ranking of assets (e.g., hosts, IP addresses, etc.) can be numerical, by group, and/or qualitative. In some embodiments, the numerical outputs of the ranking algorithms (see, e.g., weighting algorithms 128, 228) can be grouped or “bucketed” into qualitative groups that may be more easily interpreted by an end user of the asset importance ranking systems and methods. For example, in a three-bucket organization, the rankings can be according to Table 2:

TABLE 2 Rankings in a three-bucket organization. Bucket Importance Numerical Ranking 1 High output ≥ 0.1 2 Medium 0.1 > output ≥ 0.01 3 Low 0.01 > output In another example, in a four-bucket organization, the rankings can be according to Table 3:

TABLE 3 Rankings in a four-bucket organization. Bucket Bucket Numerical Ranking 1 Critical output ≥ 0.1 2 High 0.1 > output ≥ 0.01 3 Medium 0.01 > output ≥ 0.001 4 Low 0.001 > output

In some embodiments, a user may be prevented from modifying the groupings of importance rankings to ensure integrity of the ranking results. For example, the methods may be applied to the assets of entities uniformly within an industry or peer group (e.g., based on size, revenue, specialization, etc.). This may be important to entities to see how it compares to its competitors and important to third parties that evaluate groups of entities (e.g., in an insurance or funding portfolio).

In other embodiments, a user can create or customize groupings of importance rankings based on, e.g., the entity's perception of the importance of assets or a third-party's business practices.

In some embodiments, the rankings may be based on the output of the algorithms 128, 228. For example, the rankings may correspond to percentages of the output and/or organized by percentiles (e.g., quartiles, deciles, etc.). For example, in a quartile-based ranking, the top quartile can correspond to “Critical”, the second quartile to “High”, the third quartile to “Medium”, and the bottom quartile to “Low”.

In some embodiments, the asset importance ranking may be presented to a user associated with the entity (e.g., a stakeholder) in a user interface (e.g., coupled to a system configured to execute processes of methods 100 a, 200 a, etc.). The asset rankings may be presented separately (e.g., host importance ranking 130 separate from IP address ranking 230) or together. In some embodiments, for combined asset importance ranking, the method may include determining the relationship between one or more hosts and one or more IP addresses such that: (i) a related pair of host and IP address have the same or similar ranking, and/or (ii) the host and/or IP address are presented in visual proximity to each other for ease of review by a user. In some embodiments, if one asset was identified and ranked via the methods described herein (e.g., a particular IP address) and the corresponding host has not been identified, the presentation may include an indication that the corresponding host has not been identified and/or ranked. In some embodiments, the user may be able to select particular asset(s) of interest to review its importance ranking.

In some embodiments, the systems and methods can include determining an explanation of the asset ranking. For example, for a given asset (e.g., host or IP address), an explanation can be provided by determining the term or terms given more weight in the weighting algorithms 128, 228. For example, in a host asset, the lookup counts of input data 118 may be weighted more than other terms in the weighting algorithm if the data 116 reflected significant traffic. Therefore, an exemplary explanation for the corresponding host importance ranking may include:

-   -   This asset was included as High importance because it was         observed in the top 10th percentile of most frequently accessed         systems.         Other non-limiting examples of explanations may include:     -   This asset was included as High importance because it was         observed to support user-submitted data and was observed as a         system being accessed by users.     -   This asset was included as Medium importance because it was         observed hosting an EV certificate.     -   This asset was included as Low importance because it was         observed being infrequently accessed by its users.

In some embodiments, the methods can include presenting the explanation or supporting details with the asset importance ranking. For example, as discussed above, for a host ranked based on its associated website including a POST function, the URL of the website may be presented with the particular host for review by the user.

In some embodiments, the asset importance ranking(s) may depend on the relationships between entities. For example, in a parent-subsidiary corporate relationship, a subsidiary entity may have a set of assets that make up only a small fraction of assets of the parent entity.

Therefore, an asset ranked “High” for the subsidiary may only be ranked “Low” for the parent. In some embodiments, an explanation regarding ranking discrepancies between related entities may also be determined and/or presented.

In some embodiments, the asset importance ranking(s) may be determined at different times (e.g., periodically, intermittently, upon request, etc.). In some cases, the ranking(s) may change with time. In some embodiments, the ranking(s) may be presented with timestamps. In some embodiments, the methods can include ranking the asset with the same importance over time, even if the importance has changed over time. For example, if a host has been attributed a “High” importance ranking, then that ranking may persist for some time (e.g., on the order of months or years, or determined amount of time depending on the entity) even if the host is later assigned a “Medium” importance ranking.

In some embodiments, if volatility in asset importance ranking is observed for one or more of entities, the method may access one or more previous runs' rankings. The method may include applying a decay function on the ranking for each asset from the previous run and using the result as an input into the weighted algorithms 128, 228. For example, such a process can ensure that an asset slowly decays away from a “Critical” or “High” importance ranking, instead of bouncing between a “Low” and “High” importance ranking. Volatility in an asset importance ranking may occur if an entity's assets are being ranked for the first time. In another example, volatility may occur if the entity gains a new asset (e.g., a new host or IP address) or stops using an asset.

Additional Exemplary Embodiments

In some embodiments, additional or alternative datasets or processes can be included in determining the asset importance ranking(s). These datasets and/or may enrich the diversity of assets in the importance ranking and/or increase the accuracy of the ranking buckets. Increasing the diversity of input types can also lead the rankings to become more stable, as fluctuations in one input will not dramatically change the resulting rankings if the diversity of inputs is large.

In some embodiments, methods may include receiving asset importance data from users associated with entities. For example, users may provide their own rankings or assign their asset(s) with what they perceive is the importance ranks within their organization.

In some embodiments, methods may include receiving Netflow data which includes IP traffic information. Netflow data may provide a view into the usage of individual IP addresses. For example, Netflow data can include volume information for both outbound and inbound connections, and may include a description of volume of data exchanged between two endpoints.

In some embodiments, methods may include receiving asset identification data from systems configured to identify assets of entities. The asset identification data may also enable providing more comprehensive explanations of the context of a given asset. Contexts may include domain control, mobile device management (MDM) solutions, single sign-on (SSO) solution, file exchange, etc. Examples of methods and systems for identifying assets of entities can be found in U.S. Publication No. 2018/0375822 A1 published on Dec. 27, 2018 and titled “Methods for mapping IP addresses and domains to organizations using user activity data”, U.S. Pat. No. 9,830,569 issued Nov. 28, 2017 and titled “Security assessment using service provider digital asset information”, and U.S. Publication No. 2017/0236077 A1 published on Aug. 17, 2017 and titled “Relationships among technology assets and services and the entities responsible for them”, which are incorporated by reference herein in their entireties.

In some embodiments, the methods can include extracting predefined web applications that are configured in single sign-on (SSO) solutions in determining asset importance. For example, there exist some SSO solutions that make the web application selection available on the same screen as the login credentials, which may leak information about an entity's web applications.

In some embodiments, the methods can include assessing interconnected assets (e.g., web applications). For example, the method may include building a graph of an entity's web applications via interconnected links. This information may enable similar or more rational rankings of interconnected assets.

In some embodiments, the methods can include extracting administratively-defined information from DNS records that describe important information about the context of the domain configuration, e.g., the entity's email systems, any verification steps the entity's administrator has taken to confirm the domain with third-party services, etc.

In some embodiments, the methods can include identifying one or more websites that are using various Search Engine Optimization (SEO) strategies to increase the prevalence and visibility of their web applications. Such websites are systems that entity stakeholders want their users and customers to visit if they are applying specific design choices for the purposes of increasing its visibility in search results. Such assets may have corresponding higher importance rankings by virtue of these identifications.

In some embodiments, the methods can include identifying publicly accessible API(s) or other backend component(s) that service a critical function between systems or services of the entity. This can include attributes about HTTP responses from systems that demonstrate characteristics of whether the system is an HTTP-based API.

In some embodiments, the methods can include analyzing the domain popularity (e.g., traffic) within certificates to weigh the importance of a root domain name. This method may enable the inference of a slightly higher level of base importance for related hostnames of a root domain name when an entity primarily uses one particular domain.

Computer-Based Implementations

In some examples, some or all of the processing described above can be carried out on a personal computing device, on one or more centralized computing devices, or via cloud-based processing by one or more servers. In some examples, some types of processing occur on one device and other types of processing occur on another device. In some examples, some or all of the data described above can be stored on a personal computing device, in data storage hosted on one or more centralized computing devices, or via cloud-based storage. In some examples, some data are stored in one location and other data are stored in another location. In some examples, quantum computing can be used. In some examples, functional programming languages can be used. In some examples, electrical memory, such as flash-based memory, can be used.

FIG. 4 is a block diagram of an example computer system 400 that may be used in implementing the technology described in this document. General-purpose computers, network appliances, mobile devices, or other electronic systems may also include at least portions of the system 400. The system 400 includes a processor 410, a memory 420, a storage device 430, and an input/output device 440. Each of the components 410, 420, 430, and 440 may be interconnected, for example, using a system bus 450. The processor 410 is capable of processing instructions for execution within the system 400. In some implementations, the processor 410 is a single-threaded processor. In some implementations, the processor 410 is a multi-threaded processor. The processor 410 is capable of processing instructions stored in the memory 420 or on the storage device 430.

The memory 420 stores information within the system 400. In some implementations, the memory 420 is a non-transitory computer-readable medium. In some implementations, the memory 420 is a volatile memory unit. In some implementations, the memory 420 is a non-volatile memory unit.

The storage device 430 is capable of providing mass storage for the system 400. In some implementations, the storage device 430 is a non-transitory computer-readable medium. In various different implementations, the storage device 430 may include, for example, a hard disk device, an optical disk device, a solid-date drive, a flash drive, or some other large capacity storage device. For example, the storage device may store long-term data (e.g., database data, file system data, etc.). The input/output device 440 provides input/output operations for the system 400. In some implementations, the input/output device 440 may include one or more of a network interface devices, e.g., an Ethernet card, a serial communication device, e.g., an RS-232 port, and/or a wireless interface device, e.g., an 802.11 card, a 3G wireless modem, or a 4G wireless modem. In some implementations, the input/output device may include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 460. In some examples, mobile computing devices, mobile communication devices, and other devices may be used.

In some implementations, at least a portion of the approaches described above may be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions may include, for example, interpreted instructions such as script instructions, or executable code, or other instructions stored in a non-transitory computer readable medium. The storage device 430 may be implemented in a distributed way over a network, such as a server farm or a set of widely distributed servers, or may be implemented in a single computing device.

Although an example processing system has been described in FIG. 4, embodiments of the subject matter, functional operations and processes described in this specification can be implemented in other types of digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible nonvolatile program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.

The term “system” may encompass all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. A processing system may include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). A processing system may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

A computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Computers suitable for the execution of a computer program can include, by way of example, general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. A computer generally includes a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.

Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's user device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous. Other steps or stages may be provided, or steps or stages may be eliminated, from the described processes. Accordingly, other implementations are within the scope of the following claims.

Terminology The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.

The term “approximately”, the phrase “approximately equal to”, and other similar phrases, as used in the specification and the claims (e.g., “X has a value of approximately Y” or “X is approximately equal to Y”), should be understood to mean that one value (X) is within a predetermined range of another value (Y). The predetermined range may be plus or minus 20%, 10%, 5%, 3%, 1%, 0.1%, or less than 0.1%, unless otherwise indicated.

The indefinite articles “a” and “an,” as used in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean “at least one.” The phrase “and/or,” as used in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.

As used in the specification and in the claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the claims, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.” “Consisting essentially of,” when used in the claims, shall have its ordinary meaning as used in the field of patent law.

As used in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.

The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof, is meant to encompass the items listed thereafter and additional items.

Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed. Ordinal terms are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term), to distinguish the claim elements. 

What is claimed is:
 1. A computer-implemented method for ranking importance of assets of an entity, the assets comprising hosts associated with the entity, the method comprising: receiving at least one of: a first dataset comprising (i) a respective plurality of hostnames of a plurality of hosts and (ii) lookup counts for each hostname of the plurality of hostnames, the lookup counts obtained from a stream of a domain name system (DNS) queries; a second dataset comprising source code for a plurality of websites indicating, for each website, whether a host of the website is configured to collect data from users, the websites associated with the entity; or a third dataset comprising a plurality of authentication certificates associated with at least one of the plurality of hosts; determining input data based on the received at least one first dataset, second dataset, or third dataset such that: when the first dataset is received, determining a first input data comprising, for each host of the plurality of hosts, a ratio of (a) a number of lookup counts of the hostname of the host to (b) a maximum number of lookup counts of the plurality of hostnames for the entity; when the second dataset is received, determining a second input data indicating, for each host of the website, whether the source code indicates that the host is configured to collect data from users of the website; and when the third dataset is received, determining a third input data indicating, for the at least one host, whether the host has an authentication certificate; and determining, for each host associated with the entity, a host importance ranking based on the determined input data.
 2. The method of claim 1, further comprising: receiving at least two of the first dataset, second dataset, or third dataset; and determining, for each host associated with the entity, the host importance ranking based on a weighting of the at least two of the first input data, the second input data, or the third input data.
 3. The method of claim 2, further comprising receiving the first dataset, wherein determining, for each host associated with the entity, the host importance ranking further comprises: if the lookup count is zero, determining that the host importance ranking is lower than a host associated with (i) one or more lookup counts, (ii) source code indicating that the host is configured to collect data from users of the web site, or (iii) an authentication certificate.
 4. The method of claim 2, further comprising: receiving the first dataset, second dataset, and third dataset; determining, for each host associated with the entity, the host importance ranking based on the weighting of the first input data, the second input data, and the third input data; and determining a maximum of: (i) the first input data; and (ii) a sum of: (a) the first input data multiplied by a first weight; (b) the second input data multiplied by a second weight; and (c) the third input data multiplied by a third weight.
 5. The method of claim 4, further comprising: if the lookup count is at least one, setting the first weight to equal to the second weight and the third weight to equal to less than the first weight, such that the sum of the first weight, the second weight, and the third weight is equal to one; and if the lookup count is zero, setting a sum of the second weight and the third weight to equal less than the first weight.
 6. The method of claim 1, further comprising: assigning a unique identifier to each host associated with the entity.
 7. The method of claim 1, wherein the first dataset comprises lookup counts for each hostname over seven consecutive days.
 8. The method of claim 1, wherein the source code comprises HTML data for the plurality of websites.
 9. The method of claim 1, wherein, when the second dataset is received, determining the second input data further comprises: determining whether the source code indicates that the website includes a form for collecting data from the users of the website.
 10. The method of claim 9, wherein, when the second dataset is received, determining the second input data further comprises: excluding those websites in which the form collects only search queries.
 11. The method of claim 1, further comprising: presenting the host importance ranking in a user interface.
 12. The method of claim 11, wherein, when the second dataset is received, determining the second input data further comprises: collecting a URL of the website, wherein presenting the host importance ranking in a user interface comprises: presenting the URL of the website with the corresponding host.
 13. The method of claim 1, wherein the assets further comprise Internet Protocol (IP) addresses associated with the entity, the method further comprising: receiving at least one of: a fourth dataset comprising (i) a plurality of IP addresses and (ii) lookup counts for each IP address of the plurality of IP addresses; a fifth dataset comprising at least one service or application type associated with at least one IP address associated with the entity; a sixth dataset comprising fingerprints and/or cookies associated with another plurality of IP addresses associated with the entity; determining additional input data based on the received at least one fourth dataset, fifth dataset, or sixth dataset such that: when the fourth dataset is received, determining a fourth input data comprising a ratio of (a) a number of lookup counts of the IP addresses to (b) a maximum number of lookup counts of the IP addresses for the entity; when the fifth dataset is received, determining a fifth input data comprising a ranking of the at least one service or application type, the ranking determined by comparing each service or application type to a database of pre-ranked service or application types; when the sixth dataset is received, determining a sixth input data comprising a ratio of (a) a number of unique fingerprints and/or unique cookies of an IP address of the other plurality of IP addresses to (b) a maximum of numbers of unique fingerprints and/or unique cookies for the other plurality of IP addresses of the entity; and determining, for each IP address associated with the entity, an IP address importance ranking based on the determined additional input data.
 14. The method of claim 13, further comprising: determining, for each IP address of the entity, the IP address importance ranking based on a weighting of the at least two of the fourth input data, the fifth input data, the sixth input data, or the host importance ranking.
 15. The method of claim 13, wherein the fifth dataset comprises at least two service or application types for a particular IP address of the at least one IP address, and wherein, when the fifth dataset is received, determining the fifth input data comprises: determining the ranking of the at least two or application service types; and retaining a ranking of a highest ranked service or application type of the at least two service or application types.
 16. The method of claim 13, wherein the fifth dataset comprises at least thirty days of data related to the at least one service or application type.
 17. The method of claim 13, wherein, when the fifth dataset is received, determining the fifth input data comprises: ranking the at least one service or application type based on a function and/or a criticality of a corresponding service or application having the at least one service or application type.
 18. The method of claim 13, wherein the sixth dataset further comprises infection status of systems associated with the other plurality of IP addresses.
 19. The method of claim 18, wherein the infection status of systems includes a measure of malware families identified to be associated with the other plurality of IP addresses.
 20. The method of claim 19, wherein the sixth input data further comprises a ratio of (i) a number of unique malware families associated with a particular IP address of the other plurality of IP addresses to (ii) a maximum of numbers of unique malware families associated with the other plurality of IP addresses.
 21. The method of claim 13, wherein the sixth dataset comprises at least sixty days of data related to fingerprints and/or cookies associated with the other plurality of IP addresses.
 22. The method of claim 13, further comprising receiving the fourth dataset, the fifth dataset, and the sixth dataset, wherein determining, for each IP address of the entity, the IP address importance ranking is based on a maximum value from the group consisting of: the fourth input data, the fifth input data, the sixth input data, and the host importance ranking.
 23. The method of claim 22, further comprising: for at least one IP address, setting the IP address importance ranking to equal to or greater than the host importance ranking of a host associated with the at least one IP address. 